package cl.tinet.trainee.tarea6;

import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.Query;

import cl.tinet.trainee.tarea6.model.Usuario;

/**
 * Javadoc de mi proyecto.
 * @author alguien.
 *
 */
public class UsuarioDAO implements UsuarioDAOInterface<Usuario> {
	private EntityManager em;

	public UsuarioDAO(EntityManager em) {
		super();
		this.em = em;
	}

	public void agregar(Usuario nuevo) {
		em.persist(nuevo);
	}

	public void actualizar(Usuario actualizado) {
		em.persist(actualizado);
	}

	public Usuario buscar(Usuario usuario) {
		Query query = em
				.createQuery("SELECT u FROM Usuario u WHERE username=:username");
		query.setParameter("username", usuario.getUsername());
		List<Usuario> results = query.getResultList();
		if (results.size() != 0) {
			return results.get(0);
		}
		return null;

	}

	public List<Usuario> buscarTodos(String nombre) {
		Query query;
		if (nombre.equals("") || nombre.equals("*")) {
			query = (Query) em.createQuery("SELECT u FROM Usuario u");
		} else {
			query = (Query) em
					.createQuery("SELECT u FROM Usuario u WHERE nombre like nombre");
			query.setParameter("username", "%" + nombre + "%");
		}
		List<Usuario> results = query.getResultList();
		return results;
	}

	public void borrar(Usuario eliminar) {
		em.remove(eliminar);
	}

}
